<?php 
	//格式化打印数组
	function p($arr){
		echo "<pre>";
		print_r($arr);
		echo "</pre>";
	}
	//加密函数
	//$value:需要加密码的字符串
	//$type:加密或解密（0，1）
	//return:加密后返回的字符串
	function encryption($value,$type=0){
		$key=md5(C('ENCTYPTION_KEY'));
		//加密
		if(!$type){
			return str_replace('=','',base64_encode($value ^ $key));
		}
		//解密
		$value=base64_decode($value);
		return $value ^ $key;
	}

	//$time:传递的时间戳
	//这个函数用来知道一个时间发布距今有多久
	function time_format($time){
		//格式化发布时间
		$time_format=(date('Y-m-d H:i:s',$time));
		//当前时间戳 ，距1970年后的秒数second
		$now=time();
		//当天的零时零分
		//strtotime函数用来所英文日期变成时间戳
		$today=strtotime(date('y-m-d',$now));
		//时间差
		$diff=$now-$time;
		//时间差数据
		$str='';
		switch ($diff) {
			//一分钟以内,输出秒
			case $diff<60:
				$str=$diff.'秒前';
				break;
			//一小时以内,输出分钟
			case $diff<3600:
				//向下取整，分钟不要小数
				$str=floor($diff/60).'分钟前';
				break;
			//8小时以内
			case $diff<(3600*8):
				$str=floor($diff/3600).'小时前';
				break;
			//在发布微博时间的当天输出当天发布时间
			case $time>$today:
				$str=date('H:i',$time.'今天');
				break;
			//默认输出日期
			default:
				$str=$time_format; 	
		}
		return $str;
	}
	/**
	 * @param  [String] $content [需要处理的微博字符串]
	 * @return [String]          [处理完成后的字符串]
	 */
	function replace_weibo ($content) {
		if (empty($content)) return;

		//给URL地址加上 <a> 链接
		$preg = '/(?:http:\/\/)?([\w.]+[\w\/]*\.[\w.]+[\w\/]*\??[\w=\&\+\%]*)[^:]/is';
		$content = preg_replace($preg, '<a href="http://\\1" target="_blank">\\1</a>', $content);
		
		//给@用户加是 <a> 链接
		$preg = '/@(\S+)\s/is';
		$content = preg_replace($preg, '<a href="' . __APP__ . '/Home/User/index?name=\\1">@\\1</a>', $content);
		
		//提取微博内容中所有表情文件
		$preg = '/\[(\S+?)\]/is';
		//区配后元子组，第一个是区配的东西，有中括号的内容放到arr数组中的第2个数组元素
		preg_match_all($preg, $content, $arr);
		//载入表情包数组文件
		$phiz = include './Public/Data/phiz.php';
		//有表情才进行循环
		if (!empty($arr[1])) {
			foreach ($arr[1] as $k => $v) {
				//值做为键搜索phiz数组
				$name = array_search($v, $phiz);
				if ($name) {
					//把表情内容表成对应的表情图片 
					$content = str_replace($arr[0][$k], '<img src="' . __ROOT__ . '/Public/Images/phiz/' . $name . '.gif" title="' . $v . '"/>', $content);
				}
			}
		}
		return str_replace(C('FILTER'),'***',$content);
	}
	/**
	 * 内存消息推送
	 * @param [int] $uid  [用户id]
	 * @param [int] $type [推送类型]
	 * @param [bollean] $flush [是否清空，count变为零]
	 */	
	function set_msg($uid,$type,$flush=false){
		$name='';
		//case里的语句不指定变量，指的是switch()里面的变量
		switch ($type) {
			case 1:
				$name='comment';
				break;
			case 2:
				$name='letter';
				break; 
			case 3:
				$name='atme';
				break;
		}
		//清零
		if ($flush) {
			$msg=S('usermsg'.$uid);
			$msg[$name]['total']=0;
			//这个好象是多余的
			$msg[$name]['status']=0;
			S('usermsg'.$uid,$msg,0);
			return;
		}
		//存在缓存进行更新+1
		if(S('usermsg'.$uid)){
			//获取
			$data=S('usermsg'.$uid);
			//设置+1
			$data[$name]['total']++;
			//状态开启
			$data[$name]['status']=1;
			//更新,缓存永远存在，直到关机
			S('usermsg'.$uid,$data,0);
			//没有缓存，设置缓存,初始化用户数据并写入到内存
		}else{
			//要存入内存中的数据
			$data=array(
				'comment'=>array('total'=>0,'status'=>0),
				'letter'=>array('total'=>0,'status'=>0),
				'atme'=>array('total'=>0,'status'=>0),
			);
			$data[$name]['total']++;
			$data[$name]['status']=1;
			//设置缓存也就是内存
			S('usermsg'.$uid,$data,0);
		}
	}
?>